﻿#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_PatrolServer.h"

#include "Common.h"

#include "imageView.h"


#include "battery_frame_deform.h"		// 动力电池框架变形检测
#include "battery_kettle_broken.h"		// 动力电池水壶破损检测
#include "battery_shell_broken.h"		// 动力电池蒙皮破损检测
#include "battery_tilt.h"				// 动力电池倾斜识别
#include "battery_top_invade.h"			// 动力电池顶部异物检测

#include "rongqing_steel_rope_broken.h" // 融青 钢索断股检测
#include "rongqing_oil_leakage.h"       // 融青 漏油检测

#include "jiuxing_steel_rope_broken.h"  // 玖行 钢索断股检测
#include "jiuxing_rope_coiler_failure.h"// 玖行 卷绳器检测

class PatrolServer : public QMainWindow
{
    Q_OBJECT

public:
    PatrolServer(QWidget *parent = Q_NULLPTR);
    ~PatrolServer();
private:
    Ui::PatrolServerClass ui;

public:

	

    QString                             m_strConfigPath;

    QLabel*                             m_pKafkaState;          // 用来显示kafka服务状态的控件
    kafka*                              m_pKafka;

    QMap<QString, QString>              m_MapNames;
    QMap<QString, int>                  m_MapLables;


    battery_frame_deform*               m_pFrame_deform;		// 动力电池框架变形检测
    battery_kettle_broken*		        m_pKettle_broken;       // 动力电池水壶破损检测
    battery_shell_broken*		        m_pShell_broken;        // 动力电池蒙皮破损检测
    battery_tilt*				        m_pFrame_tilt;          // 动力电池倾斜识别
    battery_top_invade*		            m_pTop_invade;          // 动力电池顶部异物检测

    rongqing_steel_rope_broken*         m_RQ_steel_rope_broken; // 融青 钢索断股检测
    rongqing_oil_leakage*               m_pRQ_oil_leakage;      // 融青 漏油检测

    jiuxing_steel_rope_broken*          m_pJX_steel_rope_broken; // 玖行 钢索断股检测
	jiuxing_rope_coiler_failure*		m_pJX_rope_coiler_failure;// 玖行 卷绳器检测

protected:

    // 水壶定位模型
    QString                             m_strKettleDetModelPath;

	// 水壶区域缺陷模型
	QString								m_strKettleRectDefectModelPath;


	// 蒙皮（外壳）定位模型
	QString								m_strShellDetModelPath;

	// 蒙皮（外壳）区域缺陷模型
	QString								m_strShellRectDefectModelPath;

	// 蒙皮（外壳）区域缺陷模型
	QString								m_strShellRectClassModelPath;

	// 融青 （钢索）定位模型
	QString								m_strRQ_SteelDetModelPath;

	// 融青（电机）定位模型
	QString								m_strRQ_MotorDetModelPath;

	// 融青 （地板）定位模型
	QString								m_strRQ_FloorDetModelPath;

	// 融青（电机）区域缺陷模型
	QString								m_strRQ_MotorRectDefectModelPath;
	QString									m_strRQ_MotorRectClassModelPath;

	// 融青（地板）区域缺陷模型
	QString									m_strRQ_FloorRectDefectModelPath;
	// 融青（钢丝）区域缺陷模型
	QString									m_strRQ_SteelRectDefectModelPath;



	// 玖行 （电缆）定位模型
	QString								m_strJX_CableDetModelPath;

	// 玖行 （钢索）定位模型
	QString								m_strJX_SteelDetModelPath;

	// 玖行 (钢丝) 区域缺陷模型
	QString								m_strJX_SteelRectDefectModelPath;

	// 电池（框架）定位模型
	QString								m_strFrameDetModelPath;

	// 电池（顶部）定位模型
	QString								m_strTopDetModelPath;

	// 电池（顶部）区域缺陷模型
	QString								m_strTopRectDefectModelPath;

	// 电池（顶部）区域缺陷模型
	QString									m_strTopRectClassModelPath;

public:
	void autoRun();

    void updateImageView(int nId, IMG_DATA data);

   

protected slots:
    void on_ValueUpdate(QString strName, QString data);

    void on_updateShow(int nId, QImage image, int nBufferSize);

    void on_btnConfig_clicked();

	void on_btnStopKafka_clicked();
};
